package br.com.poc.pitagorasnumero;

import br.com.poc.pitagorasnumero.model.bo.IFacebookBO;
import br.com.poc.pitagorasnumero.model.bo.IHouseBO;
import br.com.poc.pitagorasnumero.model.bo.INameBO;
import br.com.poc.pitagorasnumero.model.bo.impl.FacebookBO;
import br.com.poc.pitagorasnumero.model.bo.impl.HouseBO;
import br.com.poc.pitagorasnumero.model.bo.impl.NameBO;
import br.com.poc.pitagorasnumero.presenter.IFacebookInitPresenter;
import br.com.poc.pitagorasnumero.presenter.IFacebookSharePresenter;
import br.com.poc.pitagorasnumero.presenter.IHouseDetailResultPresenter;
import br.com.poc.pitagorasnumero.presenter.INameDetailResultPresenter;
import br.com.poc.pitagorasnumero.presenter.impl.HouseDetailPresenter;
import br.com.poc.pitagorasnumero.presenter.impl.MainMenuPresenter;
import br.com.poc.pitagorasnumero.presenter.impl.NameDetailPresenter;

import com.google.inject.AbstractModule;

/**
 * @author irlan.gomes
 * 
 */
public class PitagorasModule extends AbstractModule {

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.google.inject.AbstractModule#configure()
	 */
	@Override
	protected void configure() {
		
		/*BO*/
		bind(INameBO.class).to(NameBO.class);
		bind(IHouseBO.class).to(HouseBO.class);
		bind(IFacebookBO.class).to(FacebookBO.class);
		
		/*PRESENTER*/		
		bind(IHouseDetailResultPresenter.class).to(HouseDetailPresenter.class);
		bind(INameDetailResultPresenter.class).to(NameDetailPresenter.class);
		bind(IFacebookSharePresenter.class).to(NameDetailPresenter.class);
		bind(IFacebookInitPresenter.class).to(MainMenuPresenter.class);
	}

}
